function onRiesgosLoad(){
    initRiesgosDetailUI();

    //Listeners para cambio de paciente
    pacienteModel.removeIdChangedListener(pacienteDetailSelect, pacienteDetailUI);
    pacienteModel.removeIdChangedListener(pacienteEvaluacionSelect, evaluacionesModel);
    pacienteModel.removeIdChangedListener(pacienteEvalClinicaSelect, evalClinicasModel);
    pacienteModel.removeIdChangedListener(pacienteFormulaDesarrolladaSelect, formulasDesarrolladasModel);
    pacienteModel.removeIdChangedListener(pacienteToleranciaSelect, toleranciaModel);
    pacienteModel.removeIdChangedListener(pacienteAlimentacionHabitualSelect, alimentacionHabitualModel);
    
    pacienteModel.addIdChangedListener(pacienteRiesgoSelect, riesgosModel);

    //Listeners para valoración de riesgos seleccionada
    riesgosModel.removeIdChangedListener(riesgoDetailSelect, riesgosDetailUI);
    riesgosModel.addIdChangedListener(riesgoDetailSelect, riesgosDetailUI);

    // Listener para recargar las valoraciones del paciente
    riesgosModel.removeOnSaveListener(cargarValoracionesPacienteActual, {});
    riesgosModel.addOnSaveListener(cargarValoracionesPacienteActual, {});

    //Listeners para agregado de riesgos
    riesgosDetailUI.removeOnAddListener(onAddRiesgo, riesgosDetailUI);
    riesgosDetailUI.addOnAddListener(onAddRiesgo, riesgosDetailUI);

    riesgosModel.setColumnValue("ValoracionRiesgoPaciente", "paciente_id", pacienteModel.idColumn.value);
    riesgosModel.setFilter("ValoracionRiesgoPaciente", "paciente_id", pacienteModel.idColumn.value);

    cargarValoracionesPacienteActual();

    riesgosDetailUI.add();
    
}

function initRiesgosDetailUI(){
    riesgosModel.clearColumns();

    riesgosModel.removeIdChangedListener(riesgoDetailSelect, riesgosDetailUI);
    riesgosDetailUI = new DetailUI("Factores Nutricionales Adversos");

    riesgosDetailUI.setModel(riesgosModel);
    riesgosDetailUI.setTitleContainer(document.getElementById("riesgos_detail_title"));
    riesgosDetailUI.setMessageContainer(document.getElementById("errorMessage"));

    riesgosDetailUI.setAddButton(document.getElementById("add_riesgo"));
    riesgosDetailUI.setEditButton(document.getElementById("edit_riesgo"));
    riesgosDetailUI.setDelButton(document.getElementById("del_riesgo"));

    riesgosDetailUI.setOkButton(document.getElementById("sbtguardar"));

    riesgosModel.addColumn("ValoracionRiesgoPaciente", "paciente_id", "string", 1, false);
    riesgosDetailUI.addField(document.getElementById("fecha"), "ValoracionRiesgoPaciente", "fecha", "date", 10, false);

    $("input[type=checkbox]").each(function(){
        riesgosDetailUI.addField(document.getElementById($(this).attr("id")), "ValoracionRiesgoPaciente", $(this).attr("id"), "string", 1, true);
        $(this).attr("value", "0");
        riesgosModel.setColumnValue("ValoracionRiesgoPaciente", $(this).attr("id"), "0");
        riesgosModel.removeOnColumnValueChangedListener("ValoracionRiesgoPaciente", $(this).attr("id"), evaluarRiesgo, {});
        riesgosModel.addOnColumnValueChangedListener("ValoracionRiesgoPaciente", $(this).attr("id"), evaluarRiesgo, {});
        $(this).click(function(){
           if($(this).attr("checked") == true){
               $(this).attr("value", "1");
               riesgosModel.setColumnValue("ValoracionRiesgoPaciente", $(this).attr("id"), "1");
           }else{
               $(this).attr("value", "0");
               riesgosModel.setColumnValue("ValoracionRiesgoPaciente", $(this).attr("id"), "0");
           }
        });
    });

}

function evaluarRiesgo(){
    var count = 0;
    $("input[type=checkbox]").each(function(){
       if($(this).attr("checked") == true){
           count++;
       }
    });

    if(count >= 3){
        var src = webRoot+"img/calavera.gif";
        var html = "<table><tr><td valign='top' style='vertical-align: middle; color: red; font-weight: bold; font-size: 12px;'>El paciente está en riesgo</td></tr></table>";
        $("#msgRiesgo").html(html);
    }else{
        $("#msgRiesgo").html("");
    }
}

function pacienteRiesgoSelect(id, context){
    riesgosDetailUI.add();

    context.setColumnValue("ValoracionRiesgoPaciente", "paciente_id", id);
    context.setFilter("ValoracionRiesgoPaciente", "paciente_id", id);

    context.idColumn.value = undefined;

    $("input[type=checkbox]").each(function(){
        $(this).attr("value", "0");
        $(this).removeAttr("checked");
        riesgosModel.setColumnValue("ValoracionRiesgoPaciente", $(this).attr("id"), "0");
        riesgosModel.setColumnValue("ValoracionRiesgoPaciente", $(this).attr("id"), "0");
        
    });

    cargarValoracionRiesgoPacientes(id);
}

function riesgoDetailSelect(id, context){
    context.edit();
}

function onAddRiesgo(context){
    riesgosModel.idColumn.value = undefined;
    setFechaActual("fecha");
    $("#valoraciones").val("0");
}

function cargarValoracionesPacienteActual(){
    cargarValoracionRiesgoPacientes(pacienteModel.idColumn.value);
}

function cargarValoracionRiesgoPacientes(id){
    //getEvaluacionesPaciente
    $.getJSON(webRoot+"ValoracionRiesgoPacientes/getEvaluacionesPaciente/"+id+"/"+Math.random()*100, {}, function(data){
        var html = "<option value='0'>-</option>";
        for(var key in data.data){
            html += "<option value='"+key+"'>"+formatDate(data.data[key])+"</option>";
        }

        $('#valoraciones').html(html);

        if(riesgosModel.idColumn.value != undefined){
            $('#valoraciones').val(riesgosModel.idColumn.value);
        }
    });

    $('#valoraciones').change(function(){
        if(Number($(this).val()) > 0){
            riesgosModel.setEntityId($(this).val());
        }else{
            riesgosDetailUI.add();
            riesgosModel.idColumn.value = undefined;
        }
    });
}
